package com.hdw.lucene.test2;

import java.nio.file.Paths;

import org.apache.lucene.analysis.cn.smart.SmartChineseAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.document.IntField;
import org.apache.lucene.document.StringField;
import org.apache.lucene.document.TextField;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory;

public class Indexer {
	private Integer ids[]={1,2,3};
	private String title[]={"青岛","测试","学习"};
	private String contents[]={
			"哦删掉数据哦技术的奥噢噢噢噢噢噢噢噢噢噢噢噢噢噢噢噢哦哦哦怕萍萍萍萍萍萍萍萍萍萍萍萍萍萍萍岁的酒酒酒酒酒酒酒酒酒酒酒酒酒酒酒酒酒酒酒阿斯蒂芬烦烦烦烦烦烦面对垂危好的",
			"MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code，并且改名为MyBatis 。2013年11月迁移到Github。",
			"开源——詹姆斯·高斯林出生于加拿大，是一位计算机编程天才。在卡内基·梅隆大学攻读计算机博士学位时，他编写了多处理器版本的Unix操作系统,是JAVA的创始人。"};
	private Directory dir;
	//创建索引
	private IndexWriter getWriter()throws Exception{
		//获得中文分词器
		SmartChineseAnalyzer analyzer=new SmartChineseAnalyzer();
		IndexWriterConfig iwc=new IndexWriterConfig(analyzer);
		IndexWriter writer=new IndexWriter(dir,iwc);
		return writer;
	}
	private void index(String indexDir)throws Exception{
		dir=FSDirectory.open(Paths.get(indexDir));
		IndexWriter writer=getWriter();
		for(int i=0;i<ids.length;i++){
			Document doc=new Document();
			doc.add(new IntField("id", ids[i], Field.Store.YES));
			//加权操作
		   TextField stringField=new TextField("title", title[i], Field.Store.YES);
		    if("测试".equals(title[i])){
		    	stringField.setBoost(1.5f);
		    }
			doc.add(stringField);
			doc.add(new TextField("content",contents[i],Field.Store.YES));
			writer.addDocument(doc);
		}
		writer.close();
	}
	public static void main(String[] args)throws Exception {
		new Indexer().index("D:\\lucene");
	}
}
